Link to shiny app: https://michaeldgarber.shinyapps.io/wf-emm/

1 Introduction

1.1 Background: Do et al. (GeoHealth, 2024)

Do and colleagues have recently estimated spatially varying effects of short-term exposure to wildfire PM2.5 on acute-care hospitalizations (Do et al. 2024) in California. They defined the exposure as a day with wildfire smoke PM2.5 ≥15 μg/m3. The outcome was the number of respiratory emergency department visits and unplanned hospitalizations.

They used a case-crossover design to estimate effects at the level of the zip-code tabulation area (ZCTA) throughout 1,396 ZCTAs in California. A map of these spatially varying effect estimates, expressed as a rate difference per 100,000 person-days, appears below (adapted from their figure 5).

A positive rate difference (shades of green) indicates that wildfire had an estimated harmful effect (i.e., more) hospitalizations, while a negative value (purple shades) implies that wildfire led to fewer hospitalizations.

In addition, they explored community characteristics possibly driving this spatial heterogeneity. The authors state:

We used meta‐regression to evaluate potential effect modification by community characteristics on the effect of a wildfire smoke day on acute care utilization at the ZCTA level. For each community characteristic, which was selected a priori, we ran a meta‐regression of the pooled ZCTA‐specific rate difference on the community characteristic. To preserve statistical power, we excluded 100 ZCTAs without complete data for 14 community characteristics other than A/C prevalence, and we excluded 274 ZCTAs for meta‐regression of the A/C prevalence. Our estimates are reported as rate difference per interquartile range increase of the community characteristic.

Below, adapted from their figure 6, is a plot of the increase in rate difference per interquartile range (IQR) increase for each socio-demographic community characteristic they considered:

This analysis of effect modification describes how the estimated effect of wildfire smoke on acute-care utilization varies based on variation in the community characteristics. Results show, for example, that the wildfire-utilization effect was stronger in communities with lower levels of air conditioning and with higher levels of uninsured populations.

Interpreting a specific value from the figure, an increase in A/C proportion from the 25th percentile to the 75th percentile was associated with a 0.239 (95% confidence interval: 0.0672, 0.411) lower rate rate difference in the effect of wildfire smoke on same-day respiratory acute-care utilization.

1.1.1 Distribution of effect measure modifiers

For reference, the distribution of each effect measure modifier over the ZCTAs are as follows:

1.2 Goal of present analysis

The present analysis has two goals.

The first is to explore how the distribution of the wildfire-healthcare utilization effect might change were there an intervention changing the values of the effect modifiers. For example, if all zip codes had the AC prevalence of those ZCTAs in the top AC quartile, how many hospitalizations could be averted?

Such an analysis could inform how much health could be averted by intervening upon the effect modifiers.

This analysis requires a major assumption that the effect modifiers have a causal effect on the rate difference. The goal of the analysis by Do and colleagues was not to assess causal interaction but rather effect modification, also called effect heterogeneity. The distinction between these two terms has important implications for their interpetation.

Tyler VanderWeele describes this important distinction on p. 268 of his book, Explanation in Causal Inference (bold added for emphasis here):

If we found that the effect of our primary exposure varied by strata defined by the secondary factor in this way, then we might call  this “effect heterogeneity” or “effect modification.” This might be useful, for example, in decisions about which subpopulations to target in order to maximize the effect of interventions. Provided that we have controlled for confounding of relationship between the primary exposure and the outcome, these estimates of effect modification or effect heterogeneity could be useful even if we have not controlled for confounding of the relationship between the secondary factor and the outcome. (Tyler J. VanderWeele 2015)

What we would not know, however, is whether the effect heterogeneity were due to the secondary factor itself, or something else associated with it. If we have not controlled for confounding for the secondary factor, the secondary factor itself may simply be serving as a proxy for something that is causally relevant for the outcome (Tyler J. VanderWeele and Robins 2007).

VanderWeele continues (bold again added for its relevance here):

If we are interested principally in assessing the effect of the primary exposure within subgroups defined by a secondary factor then simply controlling for confounding for the relationship between the primary exposure and the outcome is sufficient. However, if we want to intervene on the secondary factor in order to change the effect of the primary exposure then we need to control for confounding of the relationships of both factors with the outcome. When we control for confounding for both factors we might refer to this as “causal interaction” in distinction from mere “effect heterogeneity” mentioned above (T. J. VanderWeele 2009).

That is, effect modification can be considered a description of variation in an effect of a primary exposure over values over a secondary variable, whereas assessment of interaction requires the secondary factor to be considered as a causal factor.

Without further analyses considering potential confounding of the effect of the effect modifiers on the outcome, the above goal can only be accomplished in an exploratory manner.

A secondary goal of this analysis is thus to explore the utility of R Shiny tools for presenting high-dimensional results with which a user can interact. For example, a user could choose to raise the distribution of the effect modifier to the 50th percentile and see how results might change. (Again, by imagining to intervene on the effect modifier, this assumes that it has a causal effect on the outcome.)

2 Methods

Assuming here that we can interpret the effect modifiers as causal, our approach was as follows.

We first found decile values (i.e., 10th pecentile, 20th percentile, …90th percentile, 100th percentile) for each effect measure modifier over the ZCTAs:

emm_measure percentile_10 percentile_20 percentile_25 percentile_30 percentile_40 percentile_50 percentile_60 percentile_70 percentile_75 percentile_80 percentile_90 percentile_100 IQR
above_poverty_prop 0.471 0.558 0.589 0.611 0.665 0.721 0.764 0.805 0.821 0.839 0.878 0.960 0.232
ac_prop 0.077 0.206 0.264 0.333 0.500 0.625 0.727 0.825 0.864 0.904 1.000 1.000 0.600
car_prop 0.879 0.916 0.925 0.931 0.942 0.951 0.958 0.966 0.970 0.974 0.982 1.000 0.045
edu_bach_prop 0.104 0.154 0.175 0.194 0.240 0.298 0.355 0.433 0.475 0.526 0.650 0.871 0.300
employed_prop 0.597 0.650 0.666 0.679 0.707 0.727 0.745 0.759 0.766 0.774 0.796 0.918 0.100
income_per_capita 18244.500 22996.000 24660.250 26383.000 29999.000 33920.000 38681.000 44355.500 48049.250 52197.000 66697.500 163010.000 23389.000
insured_prop 0.817 0.855 0.867 0.878 0.897 0.912 0.925 0.938 0.944 0.951 0.966 1.000 0.077
pop_dens_10k 0.209 0.627 1.014 1.547 4.115 8.897 13.811 20.623 24.121 28.096 42.054 196.845 23.108
tree_canopy_prop 0.029 0.037 0.040 0.044 0.052 0.061 0.073 0.096 0.118 0.147 0.256 0.708 0.077

Then, for effect modifier and ZCTA, we calculated the difference between its baseline value and the value corresponding to each of 10 deciles. For example, if a zip code’s A/C prevalence is 50%, and we wanted to raise that zip code’s prevalence to that of the 80th percentile ZCTA, we subtracted 50% from the 80th percentile value to determine by how much its AC would have to rise to meet that of the target scenario.

percentile_by_emm_measure %>% 
  filter(emm_measure=="ac_prop") %>% 
  dplyr::select(emm_measure,percentile_80) %>% 
  mutate(emm_change=percentile_80-0.5)%>% 
  kable(digits=3)
emm_measure percentile_80 emm_change
ac_prop 0.904 0.404

We then expressed that change in terms of the number of IQRs that it represents.

The IQR of AC is 0.60 (above). In terms of IQRs, a change in AC from 0.5 to the 80th percentile would be 0.67 IQRs, so about two thirds of an IQR.

percentile_by_emm_measure %>% 
  filter(emm_measure=="ac_prop") %>% 
  dplyr::select(emm_measure,percentile_80, IQR) %>% 
  mutate(
    emm_change=percentile_80-0.5,
    emm_change_per_iqr=emm_change/IQR) %>% 
  kable(digits=3)
emm_measure percentile_80 IQR emm_change emm_change_per_iqr
ac_prop 0.904 0.6 0.404 0.674

We then calculated the new rate difference relating wildfire exposure with acute-care utilization under that alternative scenario, following this equation:

rd_target_pt=rd_baseline_pt+rd_per_ac_iqr_pt*ac_prop_change_per_iqr

where

  • rd_target_pt = the zip code’s new rate difference under the scenario

  • rd_per_ac_iqr_pt = the increase in the rate difference per change in IQR of AC

  • ac_prop_change_per_iqr = the number of IQRs changed in that zip code in that scenario

This equation raises at least two strong assumptions:

  1. It assumes that the change in the RD is linear. That is, the difference in the rate difference corresponding to an IQR difference in the effect modifier is the same regardless of the effect measure modifier’s baseline value. For example, the effect is the same for ZCTA values in the 10th percentile as in the 90th percentile.
  2. It also assumes, as discussed above, that rd_per_ac_iqr_ptcan be interpreted causally as an interacting exposure with no confounding.

To consider uncertainty due to modeling error in rd_per_ac_iqr_pt and in rd_baseline_pt, in each of 1,000 replicatess, re-sample rd_baseline_pt and rd_per_ac_iqr_pt from a normal distribution using the reported standard deviation and 95% CI. We assume the confidence limit is the estimate +/- 1.96*SD.

Then, in each replicate, propagate this uncertainty throughout the calculations by re-calculating rd_target_pt using the re-sampled input values.

The resulting uncertainty interval is the 2.5th and 97.5th percentiles.

Finally, we calculated the difference in rate differences between the baseline and target scenarios, i.e.,

3 Results

A tabular summary of results over all ZCTAs follows.

An interactive dashboard with maps and results by scenario is here:

https://michaeldgarber.shinyapps.io/wf-emm/

emm_measure_label Target percentile N, ZCTAs intervened Population affected RD per 100,000 person-days, baseline scenario RD per 100,000 person-days, target scenario Difference in RD per 100,000 person-days, target scenario
Prop. above poverty 0.00 0 0 130.2 (25.6, 245.6) 130.2 (25.6, 245.6) 0.0 (0.0, 0.0)
Prop. above poverty 0.05 65 1,427,949 130.2 (26.8, 245.3) 129.3 (25.8, 244.5) -0.9 (-1.3, -0.6)
Prop. above poverty 0.10 130 3,386,555 130.2 (7.3, 249.2) 127.6 (4.5, 246.4) -2.6 (-3.2, -1.9)
Prop. above poverty 0.15 195 5,771,134 130.2 (22.2, 239.9) 125.4 (17.3, 234.9) -4.8 (-5.8, -4.0)
Prop. above poverty 0.20 259 7,853,094 130.2 (19.9, 253.2) 123.8 (13.6, 245.8) -6.4 (-8.0, -5.5)
Prop. above poverty 0.25 324 9,829,829 130.2 (19.5, 230.8) 121.6 (9.8, 222.4) -8.6 (-10.1, -7.5)
Prop. above poverty 0.30 389 12,112,618 130.2 (13.7, 250.8) 119.7 (3.0, 239.0) -10.5 (-12.5, -9.1)
Prop. above poverty 0.35 454 14,286,393 130.2 (13.6, 250.7) 117.0 (1.1, 237.3) -13.2 (-15.2, -11.3)
Prop. above poverty 0.40 518 16,496,408 130.2 (21.7, 250.1) 114.0 (4.3, 234.4) -16.2 (-18.3, -14.0)
Prop. above poverty 0.45 583 18,774,848 130.2 (8.5, 256.7) 110.0 (-10.9, 237.5) -20.3 (-22.4, -17.6)
Prop. above poverty 0.50 648 20,249,751 130.2 (13.5, 245.8) 106.2 (-10.4, 222.6) -24.0 (-26.3, -21.3)
Prop. above poverty 0.55 713 22,233,303 130.2 (33.2, 275.2) 102.6 (4.1, 247.5) -27.6 (-30.3, -24.5)
Prop. above poverty 0.60 777 24,099,326 130.2 (36.7, 249.4) 99.1 (5.4, 219.0) -31.1 (-34.1, -28.0)
Prop. above poverty 0.65 842 25,819,346 130.2 (27.7, 266.1) 94.8 (-7.7, 230.3) -35.4 (-38.7, -32.6)
Prop. above poverty 0.70 907 27,906,503 130.2 (33.8, 226.0) 90.8 (-5.4, 189.3) -39.4 (-43.3, -35.6)
Prop. above poverty 0.75 972 29,901,613 130.2 (24.6, 264.4) 87.3 (-20.9, 222.1) -43.0 (-46.2, -39.0)
Prop. above poverty 0.80 1,036 31,805,782 130.2 (-1.7, 219.3) 82.9 (-48.9, 172.5) -47.3 (-51.4, -43.3)
Prop. above poverty 0.85 1,101 33,708,205 130.2 (7.7, 218.6) 78.7 (-43.1, 165.4) -51.5 (-55.1, -46.7)
Prop. above poverty 0.90 1,166 35,553,444 130.2 (19.5, 247.6) 72.8 (-38.1, 186.1) -57.4 (-61.7, -52.9)
Prop. above poverty 0.95 1,231 37,372,157 130.2 (3.2, 236.7) 64.8 (-61.5, 171.2) -65.4 (-70.2, -60.2)
Prop. above poverty 1.00 1,295 38,778,134 130.2 (34.6, 243.1) 48.5 (-48.4, 163.1) -81.7 (-86.8, -74.5)
Prop. with A/C 0.00 0 0 130.2 (11.1, 247.5) 130.2 (11.1, 247.5) 0.0 (0.0, 0.0)
Prop. with A/C 0.05 0 0 130.2 (20.1, 222.7) 130.2 (20.1, 222.7) 0.0 (0.0, 0.0)
Prop. with A/C 0.10 113 2,424,896 130.2 (-11.4, 239.7) 127.5 (-14.3, 237.0) -2.8 (-2.9, -2.5)
Prop. with A/C 0.15 169 4,381,703 130.2 (34.3, 261.6) 123.4 (27.3, 255.0) -6.8 (-7.2, -6.5)
Prop. with A/C 0.20 225 6,125,460 130.2 (24.7, 245.0) 119.0 (13.2, 233.3) -11.2 (-11.8, -10.6)
Prop. with A/C 0.25 281 8,234,072 130.2 (4.3, 240.4) 113.3 (-12.7, 223.7) -17.0 (-17.7, -16.0)
Prop. with A/C 0.30 324 9,893,793 130.2 (-13.0, 243.3) 104.8 (-37.7, 217.8) -25.5 (-26.8, -24.6)
Prop. with A/C 0.35 391 12,050,238 130.2 (28.6, 241.7) 90.9 (-10.4, 202.6) -39.3 (-40.8, -37.6)
Prop. with A/C 0.40 439 13,748,601 130.2 (-4.2, 251.1) 78.8 (-55.8, 198.5) -51.4 (-53.0, -49.6)
Prop. with A/C 0.45 505 15,572,846 130.2 (-5.8, 236.2) 71.1 (-64.7, 176.6) -59.1 (-61.2, -57.0)
Prop. with A/C 0.50 558 17,318,023 130.2 (2.0, 240.3) 53.0 (-76.2, 162.7) -77.2 (-80.1, -74.8)
Prop. with A/C 0.55 590 18,405,515 130.2 (17.8, 280.4) 43.3 (-70.7, 192.8) -86.9 (-89.4, -84.2)
Prop. with A/C 0.60 669 20,280,218 130.2 (21.7, 241.5) 27.6 (-83.4, 139.4) -102.6 (-105.4, -99.3)
Prop. with A/C 0.65 729 22,521,985 130.2 (13.8, 247.1) 12.0 (-103.2, 128.4) -118.2 (-122.3, -114.3)
Prop. with A/C 0.70 785 24,601,137 130.2 (18.3, 251.1) -0.7 (-111.1, 120.4) -130.9 (-135.9, -126.9)
Prop. with A/C 0.75 840 26,517,443 130.2 (22.0, 254.7) -13.1 (-123.6, 112.9) -143.3 (-147.3, -139.7)
Prop. with A/C 0.80 897 28,591,196 130.2 (-2.3, 248.7) -27.3 (-159.3, 92.0) -157.5 (-161.5, -153.2)
Prop. with A/C 0.85 953 30,783,714 130.2 (34.9, 268.0) -47.0 (-142.7, 89.5) -177.3 (-183.5, -172.8)
Prop. with A/C 0.90 985 32,168,706 130.2 (27.1, 237.7) -63.4 (-166.6, 45.0) -193.6 (-200.0, -189.1)
Prop. with A/C 0.95 985 32,168,706 130.2 (-0.0, 251.5) -63.4 (-193.7, 53.5) -193.6 (-198.7, -189.7)
Prop. with A/C 1.00 985 32,168,706 130.2 (32.9, 212.2) -63.4 (-166.7, 19.2) -193.6 (-198.7, -188.4)
Prop. with car 0.00 0 0 130.2 (35.9, 256.3) 130.2 (35.9, 256.3) 0.0 (0.0, 0.0)
Prop. with car 0.05 64 1,781,267 130.2 (16.9, 242.6) 119.8 (6.9, 232.1) -10.4 (-11.8, -8.9)
Prop. with car 0.10 130 3,892,158 130.2 (33.0, 260.0) 114.3 (17.4, 244.3) -15.9 (-17.6, -14.4)
Prop. with car 0.15 194 5,981,849 130.2 (43.8, 265.9) 109.4 (24.1, 244.0) -20.8 (-22.6, -19.1)
Prop. with car 0.20 257 8,028,535 130.2 (39.5, 245.0) 105.7 (15.2, 221.2) -24.6 (-26.5, -22.5)
Prop. with car 0.25 315 9,904,212 130.2 (-19.3, 274.7) 102.4 (-47.2, 247.6) -27.8 (-30.1, -26.0)
Prop. with car 0.30 382 12,387,790 130.2 (-24.7, 258.4) 99.7 (-55.5, 228.7) -30.5 (-33.0, -28.3)
Prop. with car 0.35 448 14,472,052 130.2 (31.8, 246.9) 97.0 (-1.6, 212.4) -33.2 (-35.7, -31.1)
Prop. with car 0.40 516 16,574,631 130.2 (20.0, 246.1) 93.3 (-16.2, 208.1) -36.9 (-39.2, -34.7)
Prop. with car 0.45 579 18,541,827 130.2 (31.1, 228.5) 90.5 (-7.8, 189.7) -39.7 (-42.1, -37.7)
Prop. with car 0.50 643 20,824,532 130.2 (15.3, 246.8) 86.6 (-27.9, 203.8) -43.6 (-46.3, -41.2)
Prop. with car 0.55 702 22,937,992 130.2 (7.7, 235.8) 84.0 (-38.5, 191.6) -46.2 (-49.0, -43.1)
Prop. with car 0.60 771 25,442,245 130.2 (26.7, 228.0) 80.2 (-22.8, 176.9) -50.0 (-52.2, -48.0)
Prop. with car 0.65 832 27,619,789 130.2 (19.1, 234.9) 76.1 (-36.3, 181.2) -54.1 (-56.6, -51.2)
Prop. with car 0.70 903 29,701,003 130.2 (13.5, 255.2) 71.7 (-45.8, 197.1) -58.6 (-61.3, -55.6)
Prop. with car 0.75 964 31,615,690 130.2 (3.3, 243.8) 66.9 (-60.2, 179.9) -63.3 (-66.3, -59.8)
Prop. with car 0.80 1,031 33,569,596 130.2 (11.0, 241.1) 61.8 (-57.7, 173.3) -68.5 (-71.9, -65.9)
Prop. with car 0.85 1,089 35,177,733 130.2 (8.3, 237.9) 57.7 (-64.5, 166.0) -72.5 (-75.2, -69.9)
Prop. with car 0.90 1,166 36,792,942 130.2 (33.7, 247.4) 51.2 (-45.3, 167.4) -79.0 (-81.4, -76.1)
Prop. with car 0.95 1,223 37,995,094 130.2 (11.9, 241.1) 41.3 (-76.8, 150.8) -88.9 (-92.9, -85.6)
Prop. with car 1.00 1,274 38,726,393 130.2 (21.8, 267.7) 22.1 (-83.0, 160.4) -108.1 (-111.8, -104.7)
Prop. with bachelor’s degree 0.00 0 0 130.2 (21.8, 238.8) 130.2 (21.8, 238.8) 0.0 (0.0, 0.0)
Prop. with bachelor’s degree 0.05 65 1,588,344 130.2 (2.6, 223.1) 129.9 (2.3, 222.8) -0.3 (-0.4, -0.2)
Prop. with bachelor’s degree 0.10 130 3,653,716 130.2 (18.1, 239.6) 129.4 (17.3, 238.7) -0.8 (-1.0, -0.6)
Prop. with bachelor’s degree 0.15 195 5,611,539 130.2 (52.6, 245.0) 128.7 (51.2, 243.3) -1.5 (-1.8, -1.1)
Prop. with bachelor’s degree 0.20 259 7,446,465 130.2 (-3.9, 249.5) 127.8 (-6.3, 247.1) -2.4 (-2.9, -2.1)
Prop. with bachelor’s degree 0.25 324 9,571,063 130.2 (30.9, 251.4) 126.8 (27.5, 248.3) -3.4 (-4.0, -2.9)
Prop. with bachelor’s degree 0.30 389 12,057,213 130.2 (13.2, 228.2) 125.6 (9.0, 223.2) -4.6 (-5.2, -4.0)
Prop. with bachelor’s degree 0.35 454 13,877,003 130.2 (25.3, 242.3) 124.1 (19.4, 235.5) -6.1 (-6.9, -5.1)
Prop. with bachelor’s degree 0.40 518 15,837,488 130.2 (3.5, 245.5) 122.1 (-4.4, 237.3) -8.1 (-9.0, -7.1)
Prop. with bachelor’s degree 0.45 583 17,983,529 130.2 (30.5, 256.7) 119.3 (19.7, 245.7) -10.9 (-12.2, -9.9)
Prop. with bachelor’s degree 0.50 648 19,663,177 130.2 (30.3, 224.6) 116.5 (16.6, 209.9) -13.8 (-15.0, -12.3)
Prop. with bachelor’s degree 0.55 713 21,754,737 130.2 (27.8, 248.3) 113.2 (11.2, 230.9) -17.1 (-18.8, -15.2)
Prop. with bachelor’s degree 0.60 778 23,818,070 130.2 (17.1, 232.2) 109.6 (-3.3, 210.9) -20.6 (-22.3, -18.4)
Prop. with bachelor’s degree 0.65 842 25,779,658 130.2 (6.2, 235.5) 104.3 (-19.8, 211.5) -26.0 (-28.8, -23.4)
Prop. with bachelor’s degree 0.70 907 27,670,377 130.2 (0.2, 244.5) 98.6 (-31.2, 212.2) -31.6 (-34.3, -29.1)
Prop. with bachelor’s degree 0.75 972 29,840,689 130.2 (23.4, 266.5) 92.0 (-13.6, 228.5) -38.3 (-41.6, -35.0)
Prop. with bachelor’s degree 0.80 1,036 31,824,716 130.2 (3.3, 239.0) 83.3 (-44.8, 192.2) -46.9 (-50.2, -43.5)
Prop. with bachelor’s degree 0.85 1,101 33,756,697 130.2 (20.5, 242.7) 74.0 (-35.3, 185.6) -56.2 (-60.6, -51.1)
Prop. with bachelor’s degree 0.90 1,166 35,461,026 130.2 (1.6, 243.7) 60.1 (-69.1, 176.4) -70.1 (-74.9, -64.1)
Prop. with bachelor’s degree 0.95 1,231 37,233,776 130.2 (-10.7, 276.4) 47.1 (-92.9, 195.3) -83.1 (-89.8, -76.5)
Prop. with bachelor’s degree 1.00 1,295 38,789,939 130.2 (18.4, 242.3) 13.7 (-99.3, 130.6) -116.5 (-123.4, -108.2)
Prop. employed 0.00 0 0 130.2 (8.1, 236.1) 130.2 (8.1, 236.1) 0.0 (0.0, 0.0)
Prop. employed 0.05 64 743,689 130.2 (20.9, 260.7) 133.7 (23.8, 264.3) 3.5 (2.5, 4.6)
Prop. employed 0.10 129 1,772,478 130.2 (12.9, 246.3) 136.8 (19.3, 252.6) 6.6 (5.0, 7.9)
Prop. employed 0.15 193 3,236,154 130.2 (26.9, 236.1) 139.4 (35.8, 245.7) 9.2 (7.7, 10.9)
Prop. employed 0.20 257 4,744,824 130.2 (24.1, 272.8) 142.7 (35.2, 284.4) 12.5 (10.4, 13.9)
Prop. employed 0.25 323 6,389,801 130.2 (11.8, 231.5) 145.5 (26.5, 247.2) 15.3 (13.3, 17.7)
Prop. employed 0.30 381 8,110,151 130.2 (39.3, 255.0) 148.2 (56.5, 272.1) 18.0 (15.9, 20.1)
Prop. employed 0.35 451 10,217,338 130.2 (16.0, 237.7) 151.9 (36.7, 260.7) 21.7 (19.4, 23.8)
Prop. employed 0.40 518 12,488,709 130.2 (15.8, 276.4) 155.7 (40.2, 302.5) 25.4 (23.3, 28.3)
Prop. employed 0.45 576 14,852,119 130.2 (22.2, 250.7) 159.2 (50.8, 279.9) 29.0 (25.9, 31.4)
Prop. employed 0.50 644 17,127,734 130.2 (4.4, 264.0) 162.5 (38.2, 297.1) 32.3 (29.5, 35.6)
Prop. employed 0.55 710 19,451,249 130.2 (32.8, 244.2) 166.1 (68.8, 279.4) 35.9 (32.5, 39.2)
Prop. employed 0.60 775 21,966,825 130.2 (18.0, 238.6) 170.1 (58.1, 279.4) 39.9 (35.9, 43.0)
Prop. employed 0.65 839 24,236,683 130.2 (9.7, 272.9) 173.9 (52.9, 315.4) 43.7 (40.1, 47.7)
Prop. employed 0.70 907 26,767,654 130.2 (26.3, 279.0) 177.3 (73.1, 325.7) 47.0 (43.2, 50.2)
Prop. employed 0.75 968 28,845,769 130.2 (6.0, 232.9) 180.9 (58.3, 282.1) 50.7 (47.4, 54.0)
Prop. employed 0.80 1,031 30,895,197 130.2 (18.0, 248.7) 185.6 (74.1, 303.3) 55.4 (51.1, 58.8)
Prop. employed 0.85 1,100 33,018,331 130.2 (-6.8, 255.5) 192.0 (55.8, 315.7) 61.7 (57.1, 66.3)
Prop. employed 0.90 1,162 35,104,655 130.2 (20.4, 235.3) 200.0 (92.6, 308.5) 69.8 (65.6, 75.4)
Prop. employed 0.95 1,230 37,223,891 130.2 (6.9, 239.8) 214.9 (92.4, 326.6) 84.7 (80.5, 89.7)
Prop. employed 1.00 1,295 38,799,174 130.2 (1.6, 260.5) 291.5 (162.3, 417.0) 161.3 (153.3, 169.6)
Per-capita income 0.00 0 0 130.2 (13.6, 235.9) 130.2 (13.6, 235.9) 0.0 (0.0, 0.0)
Per-capita income 0.05 65 1,660,580 130.2 (21.3, 261.4) 129.9 (21.1, 261.1) -0.3 (-0.4, -0.2)
Per-capita income 0.10 130 4,075,056 130.2 (32.3, 256.5) 129.5 (31.7, 255.8) -0.7 (-0.9, -0.5)
Per-capita income 0.15 195 6,321,397 130.2 (5.7, 269.1) 128.8 (4.3, 267.6) -1.4 (-1.7, -1.2)
Per-capita income 0.20 259 8,718,890 130.2 (26.3, 243.6) 127.9 (23.7, 241.4) -2.3 (-2.7, -2.0)
Per-capita income 0.25 324 10,795,137 130.2 (8.2, 227.6) 127.0 (4.9, 224.2) -3.2 (-3.7, -2.8)
Per-capita income 0.30 389 13,124,442 130.2 (-19.8, 281.0) 125.9 (-23.8, 276.6) -4.3 (-4.9, -3.8)
Per-capita income 0.35 454 15,273,639 130.2 (24.2, 253.4) 124.7 (18.8, 247.9) -5.6 (-6.2, -5.0)
Per-capita income 0.40 518 17,018,842 130.2 (15.2, 231.3) 122.9 (7.7, 224.3) -7.3 (-8.0, -6.4)
Per-capita income 0.45 583 18,929,460 130.2 (7.6, 235.7) 121.0 (-1.5, 226.8) -9.2 (-10.2, -8.2)
Per-capita income 0.50 648 20,878,760 130.2 (8.5, 246.5) 118.7 (-2.1, 234.4) -11.5 (-12.7, -10.3)
Per-capita income 0.55 713 22,698,513 130.2 (39.7, 249.9) 116.0 (25.4, 234.7) -14.2 (-15.4, -13.0)
Per-capita income 0.60 778 24,541,894 130.2 (3.4, 239.0) 112.6 (-14.3, 220.5) -17.6 (-19.3, -16.5)
Per-capita income 0.65 842 26,519,982 130.2 (1.1, 232.9) 108.9 (-18.8, 211.6) -21.3 (-23.0, -19.3)
Per-capita income 0.70 907 28,390,553 130.2 (31.4, 279.6) 103.9 (6.4, 252.8) -26.3 (-28.3, -24.2)
Per-capita income 0.75 972 30,282,012 130.2 (22.2, 228.6) 97.6 (-11.1, 195.6) -32.6 (-35.2, -30.2)
Per-capita income 0.80 1,036 32,233,623 130.2 (-7.3, 240.0) 90.0 (-46.6, 199.6) -40.2 (-43.2, -37.5)
Per-capita income 0.85 1,101 34,003,885 130.2 (17.7, 231.7) 78.9 (-31.7, 182.9) -51.3 (-55.0, -47.8)
Per-capita income 0.90 1,166 35,861,585 130.2 (24.2, 242.2) 60.8 (-44.7, 169.4) -69.4 (-74.1, -65.3)
Per-capita income 0.95 1,231 37,517,547 130.2 (-5.2, 262.0) 25.1 (-108.3, 156.7) -105.1 (-111.2, -99.1)
Per-capita income 1.00 1,295 38,794,645 130.2 (5.0, 237.9) -160.0 (-290.7, -55.2) -290.2 (-303.6, -272.0)
Proportion insured 0.00 0 0 130.2 (19.1, 241.0) 130.2 (19.1, 241.0) 0.0 (0.0, 0.0)
Proportion insured 0.05 65 2,366,874 130.2 (30.9, 269.8) 126.7 (27.3, 266.3) -3.5 (-4.2, -2.9)
Proportion insured 0.10 130 4,848,130 130.2 (28.1, 230.2) 122.6 (20.1, 222.4) -7.6 (-8.6, -6.9)
Proportion insured 0.15 195 6,703,232 130.2 (21.4, 253.8) 117.6 (9.0, 241.6) -12.7 (-14.1, -11.5)
Proportion insured 0.20 259 8,772,506 130.2 (9.8, 243.3) 112.7 (-7.2, 226.4) -17.5 (-18.8, -15.9)
Proportion insured 0.25 324 11,023,808 130.2 (2.9, 241.8) 107.7 (-18.6, 219.4) -22.5 (-24.1, -21.1)
Proportion insured 0.30 389 13,343,862 130.2 (20.1, 232.0) 102.2 (-6.7, 203.8) -28.0 (-30.1, -26.1)
Proportion insured 0.35 454 15,549,465 130.2 (26.6, 248.4) 95.3 (-6.9, 213.1) -34.9 (-37.2, -33.2)
Proportion insured 0.40 518 17,140,063 130.2 (35.0, 245.2) 90.0 (-5.6, 204.8) -40.2 (-42.6, -38.0)
Proportion insured 0.45 583 19,080,599 130.2 (-0.7, 221.3) 84.9 (-44.2, 174.8) -45.4 (-47.6, -43.1)
Proportion insured 0.50 648 21,056,969 130.2 (29.8, 245.1) 77.5 (-22.5, 193.2) -52.7 (-55.3, -50.2)
Proportion insured 0.55 713 23,146,449 130.2 (19.2, 233.5) 70.7 (-40.6, 174.5) -59.5 (-62.2, -56.7)
Proportion insured 0.60 777 24,688,211 130.2 (31.6, 231.1) 63.9 (-36.1, 165.5) -66.3 (-69.1, -63.2)
Proportion insured 0.65 842 26,679,437 130.2 (14.6, 234.9) 58.9 (-57.6, 162.5) -71.4 (-74.7, -68.5)
Proportion insured 0.70 907 28,429,661 130.2 (12.4, 244.2) 48.8 (-68.1, 163.7) -81.4 (-85.1, -77.5)
Proportion insured 0.75 972 30,369,580 130.2 (16.5, 232.5) 40.4 (-74.8, 143.3) -89.8 (-93.1, -86.4)
Proportion insured 0.80 1,036 32,312,570 130.2 (4.2, 222.8) 30.6 (-96.2, 123.0) -99.6 (-103.9, -96.3)
Proportion insured 0.85 1,101 34,174,766 130.2 (25.4, 251.9) 20.6 (-84.2, 142.3) -109.6 (-112.8, -105.2)
Proportion insured 0.90 1,166 36,017,246 130.2 (31.2, 240.6) 6.7 (-92.5, 117.2) -123.5 (-127.5, -120.0)
Proportion insured 0.95 1,231 37,680,657 130.2 (1.4, 245.6) -8.6 (-138.3, 107.2) -138.8 (-142.5, -133.9)
Proportion insured 1.00 1,293 38,795,310 130.2 (17.0, 231.2) -54.1 (-166.9, 50.6) -184.3 (-189.2, -179.5)
Population density 0.00 0 0 130.2 (4.5, 249.0) 130.2 (4.5, 249.0) 0.0 (0.0, 0.0)
Population density 0.05 65 212,201 130.2 (54.5, 244.7) 130.2 (54.6, 244.7) 0.0 (0.0, 0.0)
Population density 0.10 130 585,344 130.2 (0.5, 237.1) 130.3 (0.5, 237.2) 0.0 (0.0, 0.0)
Population density 0.15 195 1,139,831 130.2 (31.9, 231.9) 130.3 (32.0, 232.0) 0.1 (0.1, 0.1)
Population density 0.20 259 2,197,325 130.2 (43.3, 251.9) 130.5 (43.6, 252.2) 0.3 (0.3, 0.3)
Population density 0.25 324 3,731,511 130.2 (14.9, 242.8) 130.8 (15.5, 243.4) 0.6 (0.6, 0.6)
Population density 0.30 389 5,423,463 130.2 (-14.5, 230.3) 131.3 (-13.4, 231.4) 1.1 (1.1, 1.2)
Population density 0.35 454 7,286,524 130.2 (38.4, 248.2) 132.6 (40.9, 250.7) 2.4 (2.3, 2.6)
Population density 0.40 518 9,252,703 130.2 (31.1, 244.4) 134.7 (35.6, 248.9) 4.5 (4.3, 4.7)
Population density 0.45 583 11,136,502 130.2 (24.0, 243.2) 137.8 (31.6, 250.7) 7.6 (7.2, 8.0)
Population density 0.50 648 13,543,389 130.2 (26.2, 252.3) 142.6 (38.4, 264.6) 12.3 (11.7, 12.8)
Population density 0.55 713 16,130,870 130.2 (-7.9, 260.1) 147.1 (9.1, 276.6) 16.9 (16.2, 17.5)
Population density 0.60 778 18,255,568 130.2 (19.2, 232.7) 152.4 (41.4, 255.5) 22.2 (21.3, 23.2)
Population density 0.65 842 20,640,265 130.2 (20.7, 255.5) 159.5 (50.4, 283.9) 29.3 (27.9, 30.7)
Population density 0.70 907 22,937,642 130.2 (-13.5, 238.5) 168.5 (25.1, 276.6) 38.3 (36.7, 40.0)
Population density 0.75 972 25,559,995 130.2 (-0.1, 260.5) 177.7 (47.9, 308.0) 47.5 (45.7, 49.3)
Population density 0.80 1,036 28,075,902 130.2 (19.6, 245.7) 188.9 (77.8, 303.9) 58.7 (55.9, 60.4)
Population density 0.85 1,101 30,450,650 130.2 (5.6, 249.1) 205.1 (82.0, 326.1) 74.9 (71.9, 78.3)
Population density 0.90 1,166 33,066,517 130.2 (30.6, 247.9) 232.4 (130.7, 350.3) 102.1 (98.7, 105.8)
Population density 0.95 1,231 35,800,636 130.2 (-6.1, 240.8) 284.3 (144.8, 390.6) 154.1 (148.2, 159.1)
Population density 1.00 1,295 38,788,303 130.2 (6.0, 238.6) 786.3 (667.6, 899.9) 656.1 (636.7, 677.2)
Tree canopy share 0.00 0 0 130.2 (15.7, 257.0) 130.2 (15.7, 257.0) 0.0 (0.0, 0.0)
Tree canopy share 0.05 65 1,228,408 130.2 (18.3, 265.8) 129.7 (17.8, 265.2) -0.5 (-0.6, -0.5)
Tree canopy share 0.10 130 3,598,934 130.2 (51.7, 237.8) 128.5 (50.0, 236.1) -1.7 (-1.8, -1.6)
Tree canopy share 0.15 195 6,547,961 130.2 (22.5, 255.2) 127.6 (19.8, 252.5) -2.6 (-2.7, -2.5)
Tree canopy share 0.20 259 9,189,388 130.2 (28.0, 237.0) 126.6 (24.6, 233.3) -3.6 (-3.8, -3.4)
Tree canopy share 0.25 324 11,592,375 130.2 (31.6, 248.4) 125.5 (27.0, 243.7) -4.7 (-4.9, -4.4)
Tree canopy share 0.30 389 14,175,321 130.2 (7.3, 247.1) 123.8 (0.8, 240.7) -6.4 (-6.6, -6.1)
Tree canopy share 0.35 454 16,841,575 130.2 (8.6, 268.8) 122.1 (0.5, 260.8) -8.1 (-8.4, -7.8)
Tree canopy share 0.40 518 19,067,769 130.2 (5.9, 235.7) 119.4 (-4.8, 224.9) -10.8 (-11.2, -10.4)
Tree canopy share 0.45 583 21,319,444 130.2 (8.9, 249.7) 116.8 (-4.7, 236.2) -13.4 (-13.8, -13.0)
Tree canopy share 0.50 648 23,525,351 130.2 (39.9, 256.9) 113.1 (23.3, 239.9) -17.1 (-17.6, -16.5)
Tree canopy share 0.55 713 25,534,059 130.2 (31.7, 275.2) 108.4 (9.7, 253.4) -21.8 (-22.4, -21.3)
Tree canopy share 0.60 777 27,497,040 130.2 (20.2, 250.7) 102.7 (-7.3, 223.7) -27.5 (-28.2, -26.6)
Tree canopy share 0.65 842 29,390,968 130.2 (4.1, 223.4) 93.6 (-32.5, 187.0) -36.6 (-37.5, -35.7)
Tree canopy share 0.70 907 31,378,211 130.2 (27.6, 245.7) 78.9 (-22.9, 194.2) -51.3 (-52.3, -50.0)
Tree canopy share 0.75 972 33,302,304 130.2 (20.8, 254.3) 54.4 (-54.5, 178.1) -75.8 (-77.6, -73.9)
Tree canopy share 0.80 1,036 35,098,620 130.2 (19.5, 258.8) 19.0 (-91.9, 147.8) -111.2 (-113.6, -108.7)
Tree canopy share 0.85 1,101 36,360,331 130.2 (-27.2, 247.6) -42.9 (-199.7, 73.1) -173.1 (-176.5, -168.9)
Tree canopy share 0.90 1,166 37,575,608 130.2 (40.1, 251.6) -126.6 (-215.5, -4.5) -256.8 (-260.4, -252.2)
Tree canopy share 0.95 1,231 38,309,338 130.2 (12.5, 243.9) -324.6 (-443.7, -211.2) -454.8 (-463.1, -446.2)
Tree canopy share 1.00 1,295 38,792,381 130.2 (23.8, 240.6) -810.4 (-919.3, -696.5) -940.6 (-955.4, -921.3)

References

Do, V., C. Chen, T. Benmarhnia, and J. A. Casey. 2024. “Spatial Heterogeneity of the Respiratory Health Impacts of Wildfire Smoke PM 2.5 in California.” GeoHealth 8 (4): e2023GH000997. https://doi.org/10.1029/2023GH000997.
VanderWeele, T J. 2009. “On the Distinction Between Interaction and Effect Modification.” Epidemiology (Cambridge, Mass.) 20 (6): 863.
VanderWeele, Tyler J. 2015. “An Introduction to Interaction Analysis.” In, 249–85. New York, NY: Oxford University Press.
VanderWeele, Tyler J, and James M Robins. 2007. “Four Types of Effect Modification: A Classification Based on Directed Acyclic Graphs.” Epidemiology 18 (5): 561–68. https://doi.org/10.1097/EDE.0b013e318127181b.